package com.handydata.antifraud.service;

import com.handydata.common.exception.SysException;
import com.handydata.antifraud.bo.dictinfo.DictInfoReqBO;
import com.handydata.antifraud.bo.dictinfo.DictInfoResBO;

import java.util.List;

/**
 * 通用字典表,存储各种简单的字典Service接口
 * 
 * @author guolong
 * @email jishu@handy-data.cn
 * @date 2019-08-21 15:18:44
 */
public interface DictInfoService {
	
	/**
	 * 
	 * 创建通用字典表,存储各种简单的字典
	 * @param req 请求BO对象
	 * @return
	 */
	DictInfoResBO createDictInfo(DictInfoReqBO req) throws SysException;
	
	/**
	 * 
	 * 修改通用字典表,存储各种简单的字典
	 * @param req 请求BO参数
	 * @return
	 */
    DictInfoResBO modifyDictInfo(DictInfoReqBO req) throws SysException;
	
	/**
	 * 
	 * 删除通用字典表,存储各种简单的字典
	 * @param req 请求BO参数
	 * @return
	 */
    DictInfoResBO deleteDictInfo(DictInfoReqBO req) throws SysException;
	
	/**
	 * 
	 * 查询通用字典表,存储各种简单的字典
	 * @param req 请求BO参数
	 * @return
	 */
    DictInfoResBO queryDictInfo(DictInfoReqBO req) throws SysException;

	/**
	 *
	 * 通过code获取字典值
	 * @param code 字典code,type字典类型
	 * @return
	 */
	Object getDictInfo(String code,String type) throws SysException;

	/**
	 *
	 * 加载通用字典数据到redis缓存
	 * @return
	 */
	public  void loadGeneralDict() ;

	/**
	 *
	 * 通过codes获取多个字典值
	 * @param codes 字典key,type字典类型
	 * @return
	 */
	public List<Object> getMuitleDictInfo(List<String> codes, String type) throws SysException;
}
